home *** CD-ROM | disk | FTP | other *** search
/ Aminet 38 / Aminet 38 (2000)(Schatztruhe)[!][Aug 2000].iso / Aminet / dev / amos / fileidex.lha / FileIDExt / Source / FileID.s
Encoding:
Text File  |  1980-01-12  |  6.2 KB  |  308 lines

  1. ; Name        : fileid.Lib
  2. ; Version    : 1.0
  3. ; Programmierer :  
  4. ; Funktion    : 
  5. ; Slot        : 25
  6. ; Bemerkungen   : 
  7. ;        :
  8. ;        :
  9. ;
  10. ;
  11.  
  12. ExtNb        equ    25-1
  13.         
  14.         IncDir    "Include:"
  15.         Include "Libraries/FileID.i"
  16.         Include "Libraries/FileID_IDDefs.i
  17.         Include "Libraries/FileID_lib.i"        
  18.         
  19.     
  20. *** LVO`s
  21. _LVOOpenLibrary        =    -552
  22. _LVOCloseLibrary    =    -414
  23. ***
  24. ***
  25. Version    MACRO
  26.     dc.b    "1.0"    
  27.     ENDM
  28. ***
  29.  
  30.  
  31.         INCDIR "Include:AMOS1.3/"
  32.          Include    "_Equ.s"
  33.         RsSet    DataLong
  34.         Include "_Pointe.s"
  35.         Include "_CEqu.s"
  36.         Include    "_WEqu.s"
  37.         Include    "_LEqu.s"
  38.         INCDIR  "Devpac:AMOSExtensions/
  39.         Include "|macros.s"    
  40.  
  41. *********************************************************************
  42. Start           dc.l   C_Tk-C_Off
  43.         dc.l   C_Lib-C_Tk
  44.         dc.l   C_Title-C_Lib
  45.         dc.l   C_End-C_Title
  46.         dc.w   0
  47.         
  48. ***********************************************************************
  49. *  Offset To Funktion
  50. C_Off        dc.w (L1-L0)/2,(L2-L1)/2,(L3-L2)/2,(L4-L3)/2
  51.         dc.w (L5-L4)/2,(L6-L5)/2,(L7-L6)/2,(L8-L7)/2
  52.         dc.w (L9-L8)/2,(L10-L9)/2,(L11-L10)/2,(L12-L11)/2
  53.         dc.w (L13-L12)/2,(L14-L13)/2,(L15-L14)/2,(L16-L15)/2
  54.         dc.w (L17-L16)/2,(L18-L17)/2,(L19-L18)/2,(L20-L19)/2                
  55.  
  56. ***********************************************************************
  57. * Befehle
  58. C_Tk
  59.         dc.w    1,0
  60.         dc.b    $80,-1
  61. * Befehle
  62.         dc.w    -1,L_IDGetHighID
  63.         dc.b    "id get high i","d"+$80,"0",-1
  64.         
  65.         dc.w    -1,L_IDGetString
  66.         dc.b    "id get strin","g"+$80,"20",-1
  67.         
  68.         dc.w    -1,L_IDIdentifyFile
  69.         dc.b    "id identify fil","e"+$80,"02",-1
  70.         
  71.         dc.w    -1,L_IDIdentifyAdresse
  72.         dc.b    "id identify adress","e"+$80,"00",-1
  73.  
  74.         dc.w    -1,L_IDFileInfo
  75.         dc.b    "id fileinf","o"+$80,"0",-1
  76.  
  77.         dc.w    -1,L_IDerror
  78.         dc.b    "id erro","r"+$80,"0",-1
  79.         
  80.         dc.w    0    
  81.  
  82. **********************************************************************
  83. * Kaltstart
  84. C_Lib
  85.  
  86. L0
  87.     movem.l    a3-a6,-(sp)
  88.     lea    MY(pc),a3
  89.     move.l    a3,ExtAdr+ExtNb*16(a5)
  90.  
  91. ;    lea    MYdef(pc),a0
  92. ;    move.l    a0,ExtAdr+ExtNb*16+4(a5)
  93. ;    lea    MYend(pc),a0
  94. ;    move.l    a0,ExtAdr+ExtNb*16+8(a5)
  95.  
  96.     
  97. ****************************************
  98. *** library öffne
  99.     lea    IDName(pc),a1
  100.     moveq    #0,d0            ; ab Version 6
  101.     move.l    4,a6
  102.     jsr    _LVOOpenLibrary(a6)
  103.     move.l    d0,_IDbase
  104.     
  105. ****************************************
  106.     movem.l    (sp)+,a3-a6    
  107.     moveq    #ExtNb,d0    
  108.     rts
  109. ***********************************************************
  110. ;MYdef    rts
  111. *******
  112. ;MYend    rts
  113. *******
  114. * Data 
  115. MY:
  116. UserVer:    dc.b    "$VER: FileID Extension V"
  117.         VERSION
  118.         dc.b    " by Haiko Lemser"
  119.         dc.b    0
  120.         EVEN
  121. IDName        dc.b    'FileID.library',$00
  122. _IDbase        dc.l    0
  123. FileInfo    dc.l    0
  124. dummy        dc.l    0
  125. IDerr        dc.l    0
  126.  
  127.         Even
  128. *********************************************************************
  129. L1
  130. L2
  131. *********************************************************************
  132. *** Var = Id Get HighId
  133. L_IDGetHighID        equ    3
  134. L3            movem.l    a3-a6,-(sp)
  135.             Tst.l    _IDbase
  136.             bne.w    .ok3
  137.             moveq    #0,d0
  138.             RBra    L_Custom
  139. .ok3            move.l    _IDbase,a6
  140.             Jsr    _LVOFIGetHighID(a6)
  141.             Move.l    d0,d3
  142.             moveq    #0,d2
  143.             movem.l    (sp)+,a3-a6
  144.             Rts
  145. *********************************************************************
  146. *** String = Id Get String(Num)
  147. L_IDGetString        equ    4
  148. L4            move.l    (a3)+,d0        ; ID Nummer
  149.             movem.l    a3-a6,-(sp)
  150.             Tst.l    _IDbase
  151.             bne.w    .ok4
  152.             moveq    #0,d0
  153.             RBra    L_Custom
  154. .ok4            move.l    _IDbase,a6
  155.             Jsr    _LVOFiGetIDString(a6)
  156.             Move.l    d0,d0
  157.             sub.b    #2,d0
  158.             move.l  d0,d3
  159.             moveq    #2,d2
  160.             movem.l    (sp)+,a3-a6
  161.             Rts
  162. *********************************************************************
  163. *** Var = Id Identify File("File")
  164. L_IDIdentifyFile    equ    5
  165. L5            move.l    (a3)+,a4        ; ID Nummer
  166.             add.l    #2,a4
  167.             move.l    a4,d1            ; Name in D1
  168.             movem.l    a3-a6,-(sp)
  169.             Tst.l    _IDbase
  170.             bne.w    .ok5
  171.             moveq    #0,d0
  172.             RBra    L_Custom
  173. .ok5            move.l    _IDbase,a6
  174.             Jsr    _LVOFiAllocFileInfo(a6)
  175.             Move.l    D0,FileInfo        ; Structur Sichern
  176.             bne.w    .ok5_1
  177.             moveq    #4,d0
  178.             RBra    L_Custom
  179.  
  180. .ok5_1            move.l    _IDbase,a6
  181.             move.l    a4,d1            ; Name
  182.             move.l    FileInfo,A1        ; FileInfo Structur
  183.             Jsr    _LVOFiIdentifyFromName(a6)
  184.             move.l    d0,IDerr
  185.             beq.w    .ok5_2
  186.  
  187.             move.l    #0,d3
  188.             sub.l    IDerr,d3         
  189.             move.l    d3,d0
  190.             RBra    L_Custom
  191.  
  192. .ok5_2            move.l    FileInfo,a0    
  193.             move.w    4(a0),d0
  194.             move.l    d0,dummy
  195.             
  196.  
  197.             Move.l    _IDbase,a6
  198.             Move.l    FileInfo,a1        ; FileInfo Structur
  199.             Jsr    _LVOFiFreeFileInfo(a6)
  200.         
  201.             move.l    dummy,d3
  202.             moveq    #0,d2
  203.             movem.l    (sp)+,a3-a6
  204.             Rts
  205. *********************************************************************
  206. *** Var = Id Identify Adresse(Adr)
  207. L_IDIdentifyAdresse    equ    6
  208. L6            move.l    (a3)+,a4        ; Adresse
  209.             move.l    a4,a0
  210.             movem.l    a3-a6,-(sp)
  211.             Tst.l    _IDbase
  212.             bne.w    .ok6
  213.             moveq    #0,d0
  214.             RBra    L_Custom
  215. .ok6            move.l    _IDbase,a6
  216.             Jsr    _LVOFiAllocFileInfo(a6)
  217.             Move.l    D0,FileInfo        ; Structur Sichern
  218.             bne.w    .ok6_1
  219.             moveq    #4,d0
  220.             RBra    L_Custom
  221.  
  222. .ok6_1            move.l    _IDbase,a6
  223.             move.l    a4,a0
  224.             move.l    FileInfo,A1        ; FileInfo Structur
  225.             Jsr    _LVOFiIdentify(a6)
  226.             move.l    d0,IDerr
  227.             beq.w    .ok6_2
  228.  
  229.             move.l    #0,d3
  230.             sub.l    IDerr,d3         
  231.             move.l    d3,d0
  232.             RBra    L_Custom
  233.  
  234. .ok6_2            move.l    FileInfo,a0    
  235.             move.w    4(a0),d0
  236.             move.l    d0,dummy
  237.  
  238.             Move.l    _IDbase,a6
  239.             Move.l    FileInfo,a1        ; FileInfo Structur
  240.             Jsr    _LVOFiFreeFileInfo(a6)
  241.         
  242.             move.l    dummy,d3
  243.             moveq    #0,d2
  244.             movem.l    (sp)+,a3-a6
  245.             Rts
  246. *********************************************************************
  247. L_IDFileInfo        equ    7
  248. L7            move.l    FileInfo,d3
  249.             moveq    #0,d2
  250.             Rts
  251.  
  252. L_IDerror        equ    8
  253. L8            move.l    IDerr,d3
  254.             moveq    #0,d2
  255.             rts
  256.  
  257. L9
  258. L10
  259. L11
  260. L12
  261. L13
  262. L14
  263. L15
  264. L16
  265. L17
  266. *********************************************************************
  267. *** Prüft ob Library geöffnet ist (Aufruf mit : BSR.W LibCheck)
  268. LibCheck    Tst.l    _IDbase
  269.         bne.w    .dummyok
  270.         moveq    #0,d0
  271.         RBra    L_Custom
  272. .dummyok    Rts
  273. *********************************************************************
  274. L_Custom    equ    18
  275. L18        lea    ErrMsg(pc),a0
  276.         moveq    #0,d1
  277.         moveq    #ExtNb,d2
  278.         moveq    #0,d3
  279.         RJmp    L_ErrorExt
  280. ErrMsg        
  281.         dc.b    "FileID.library nicht geöffnet",0    * 0
  282.         dc.b    "Kann Datei nicht finden",0        * 1
  283.         dc.b    "Kann Datei nicht prüfen",0        * 2
  284.         dc.b    "Kann Datei nicht öffnen",0        * 3
  285.         dc.b    "Kein Speicher mehr",0            * 4
  286.         dc.b    "Datei Lese Fehler",0            * 5
  287.         dc.b    "Datei Größe ist NULL",0        * 6
  288.         dc.b    "Kein Datei Name in angegebenen Pfad",0    * 7
  289.         Even
  290.         
  291. ********************************************************************        
  292. L19        moveq    #0,d1
  293.         moveq    #ExtNb,d2
  294.         moveq    #0,d3
  295.         Rjmp    L_ErrorExt
  296. ***
  297. L20
  298. ********************************************************************
  299. C_Title
  300.         dc.b    31,"FileID Extension V "
  301.         Version
  302.         dc.b    " by Haiko Lemser ®1998"
  303.         dc.b    0
  304.         Even
  305.         
  306. C_End        dc.w    0
  307.         Even
  308.